import request from '@/utils/request'

let OSS = require('ali-oss');

/**
 *  [region] {String}：bucket所在的区域， 默认oss-cn-hangzhou。
 *  [accessKeyId] {String}：通过阿里云控制台创建的AccessKey。
 *  [accessKeySecret] {String}：通过阿里云控制台创建的AccessSecret。
 *  [bucket] {String}：通过控制台或PutBucket创建的bucket。
 */
//请求后台获取秘钥
export function doClient(func) {
  request.get('/sys/oss/getAccess').then(res => {
    if (res && res.code === 200) {
      let client = new OSS({
        region: res.data.aliyunRegion,
        accessKeyId: res.data.aliyunAccessKeyId,
        accessKeySecret: res.data.aliyunAccessKeySecret,
        bucket: res.data.aliyunBucketName
      });
      func(client);
    } else {
      console.error('OSS认证获取失败')
    }
  }).catch(error => {
    console.error('OSS认证获取失败', error)
  })
}

// 保存上传到OSS服务器的文件的记录
export function saveOssFile(data) {
  return request({
    url: '/sys/oss/save',
    method: 'post',
    data: data
  })
}

// 删除保存上传到OSS服务器的文件的记录
export function deleteOssFile(id) {
  return request({
    url: '/sys/oss/delete/' + id,
    method: 'delete'
  })
}

// 查询OSS附件管理列表（按照业务主键、上传控件标识查询）
export function listByBusinessKeyAndUploaderId(businessKey, uploaderId) {
  return request({
    url: '/sys/oss/listByBusinessKeyAndUploaderId?businessKey=' + businessKey + '&uploaderId=' + uploaderId,
    method: 'get'
  })
}
